% loadlibrary('Tango DLL\Tango_DLL.dll','Tango DLL\Tango_DLL.h'); function varargout = mwTango(varargin) % MWTANGO MATLAB code for mwTango.fig % MWTANGO, by itself, creates a new MWTANGO or raises the existing % singleton*. % % H = MWTANGO returns the handle to a new MWTANGO or the handle to % the existing singleton*. % % MWTANGO('CALLBACK',hObject,eventData,handles,...) calls the local % function named CALLBACK in MWTANGO.M with the given input arguments. % % MWTANGO('Property','Value',...) creates a new MWTANGO or raises the % existing singleton*. Starting from the left, property value pairs are % applied to the GUI before mwTango_OpeningFcn gets called. An % unrecognized property name or invalid value makes property application % stop. All inputs are passed to mwTango_OpeningFcn via varargin. % % *See GUI Options on GUIDE's Tools menu. Choose "GUI allows only one % instance to run (singleton)". % % See also: GUIDE, GUIDATA, GUIHANDLES % Edit the above text to modify the response to help mwTango % Last Modified by GUIDE v2.5 13-May-2015 09:37:59 % Begin initialization code - DO NOT EDIT gui_Singleton = 1; gui_State = struct('gui_Name', mfilename, ... 'gui_Singleton', gui_Singleton, ... 'gui_OpeningFcn', @mwTango_OpeningFcn, ... 'gui_OutputFcn', @mwTango_OutputFcn, ... 'gui_LayoutFcn', [] , ... 'gui_Callback', []); if nargin && ischar(varargin{1}) gui_State.gui_Callback = str2func(varargin{1}); end if nargout [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:}); else gui_mainfcn(gui_State, varargin{:}); end % End initialization code - DO NOT EDIT end % --- Executes just before mwTango is made visible. function mwTango_OpeningFcn(hObject, eventdata, handles, varargin) % This function has no output args, see OutputFcn. % hObject handle to figure % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % varargin command line arguments to mwTango (see VARARGIN) % Choose default command line output for mwTango handles.output = hObject; % set up the C pointer to the id for the Tango handles.idPtr = libpointer('int32Ptr',1); calllib('Tango_DLL','LSX_CreateLSID',handles.idPtr); % connect to the Tango calllib('Tango_DLL','LSX_ConnectSimple',handles.idPtr.Value,1,'COM3',57600,1); % clear the current position calllib('Tango_DLL','LSX_ClearPos',handles.idPtr.Value,7); % create the pointers for the positions handles.xPosPtr = libpointer('doublePtr',0); handles.yPosPtr = libpointer('doublePtr',0); handles.zPosPtr = libpointer('doublePtr',0); handles.aPosPtr = libpointer('doublePtr',0); updatePosition(handles); % Update handles structure guidata(hObject, handles); % UIWAIT makes mwTango wait for user response (see UIRESUME) % uiwait(handles.figure1); end % --- Executes when user attempts to close figure1. function figure1_CloseRequestFcn(hObject, eventdata, handles) % hObject handle to figure1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hint: delete(hObject) closes the figure % if the ActiveX control exists, close it out disp('closing out'); % disconnect from the Tango calllib('Tango_DLL','LSX_Disconnect',handles.idPtr.Value); calllib('Tango_DLL','LSX_FreeLSID',handles.idPtr.Value); get(handles.idPtr) delete(hObject); end % --- Outputs from this function are returned to the command line. function varargout = mwTango_OutputFcn(hObject, eventdata, handles) % varargout cell array for returning output args (see VARARGOUT); % hObject handle to figure % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Get default command line output from handles structure varargout{1} = handles.output; end function edit_xPos_Callback(hObject, eventdata, handles) % hObject handle to edit_xPos (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of edit_xPos as text % str2double(get(hObject,'String')) returns contents of edit_xPos as a double handles = setPosition(handles); updatePosition(handles); end % --- Executes during object creation, after setting all properties. function edit_xPos_CreateFcn(hObject, eventdata, handles) % hObject handle to edit_xPos (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end end function edit_yPos_Callback(hObject, eventdata, handles) % hObject handle to edit_yPos (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of edit_yPos as text % str2double(get(hObject,'String')) returns contents of edit_yPos as a double handles = setPosition(handles); updatePosition(handles); end % --- Executes during object creation, after setting all properties. function edit_yPos_CreateFcn(hObject, eventdata, handles) % hObject handle to edit_yPos (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end end function edit_zPos_Callback(hObject, eventdata, handles) % hObject handle to edit_zPos (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of edit_zPos as text % str2double(get(hObject,'String')) returns contents of edit_zPos as a double handles = setPosition(handles); updatePosition(handles); end % --- Executes during object creation, after setting all properties. function edit_zPos_CreateFcn(hObject, eventdata, handles) % hObject handle to edit_zPos (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end end function handles = updatePosition(handles) calllib('Tango_DLL','LSX_GetPos',handles.idPtr.Value,handles.xPosPtr,... handles.yPosPtr,handles.zPosPtr,handles.aPosPtr); %handles.xPosPtr.Value % display the relative positions set(handles.edit_xPos,'String',num2str(handles.xPosPtr.Value)); set(handles.edit_yPos,'String',num2str(handles.yPosPtr.Value)); set(handles.edit_zPos,'String',num2str(handles.zPosPtr.Value)); end % set the relative origin equal to the current position function handles = setZeroPosition(handles,axisStr) % clear the current position calllib('Tango_DLL','LSX_ClearPos',handles.idPtr.Value,7); end function handles = setPosition(handles) % set the absolute position xPos = str2double(get(handles.edit_xPos,'String')); yPos = str2double(get(handles.edit_yPos,'String')); zPos = str2double(get(handles.edit_zPos,'String')); calllib('Tango_DLL','LSX_MoveAbs',handles.idPtr.Value,xPos,yPos,zPos,0,1); pause(0.5); end % --- Executes on button press in pushbutton_xZero. function pushbutton_xZero_Callback(hObject, eventdata, handles) % hObject handle to pushbutton_xZero (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) handles = setZeroPosition(handles,'x'); updatePosition(handles); guidata(hObject, handles); end % --- Executes on button press in checkbox_liveUpdate. function checkbox_liveUpdate_Callback(hObject, eventdata, handles) % hObject handle to checkbox_liveUpdate (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hint: get(hObject,'Value') returns toggle state of checkbox_liveUpdate if get(hObject,'Value') == 1 % continuously update the checkbox is deactivated while get(handles.checkbox_liveUpdate,'Value') == 1 updatePosition(handles); pause(0.5); end end end
Error using calllib Library was not found Error in mwTango>mwTango_OpeningFcn (line 63) calllib('Tango_DLL','LSX_CreateLSID',handles.idPtr); Error in gui_mainfcn (line 220) feval(gui_State.gui_OpeningFcn, gui_hFigure, [], guidata(gui_hFigure), varargin{:}); Error in mwTango (line 44) gui_mainfcn(gui_State, varargin{:});